package com.changgou.goods.service;


import com.changgou.goods.pojo.Goods;
import com.changgou.goods.pojo.Spu;

public interface SpuService {

    /**
     * @param goods
     * @return void
     * @description: 新增商品
     * @author 大佬味的小男孩
     * @date 2020/07/19 16:33
     */
    public void add(Goods goods);

    /**
     * @param id
     * @return com.changgou.goods.pojo.Goods
     * @description: 根据ID查询 SPU和SKU列表
     * @author 大佬味的小男孩
     * @date 2020/07/19 22:07
     */
    public Goods findGoodsById(String id);


    /**
     * @param goods
     * @return void
     * @description: 保存修改
     * @author 大佬味的小男孩
     * @date 2020/07/19 22:36
     */
    public void update(Goods goods);


    /**
     * @param id
     * @return void
     * @description: 审核并自动上架
     * @author 大佬味的小男孩
     * @date 2020/07/19 23:03
     */
    public void audit(String id);


    /**
     * @param id
     * @return void
     * @description: 下架商品
     * @author 大佬味的小男孩
     * @date 2020/07/20 16:10
     */
    public void pull(String id);

    /**
     * @param id
     * @return void
     * @description: 逻辑中删除商品， 并非真正的删除(物理删除)，而是采用逻辑删除将删除标记的字段设置为1
     * @author 大佬味的小男孩
     * @date 2020/07/20 18:37
     */
    public void delete(String id);

    /**
     * @param id
     * @return void
     * @description: 回收站中还原商品, 将删除标记的字段设置为0
     * @author 大佬味的小男孩
     * @date 2020/07/20 18:38
     */
    public void reduction(String id);

    /**
     * @param id
     * @return void
     * @description: 回收站中删除商品,真正的物理删除,将数据从数据库中删除掉
     * @author 大佬味的小男孩
     * @date 2020/07/20 18:40
    */
    public void deleteTrue(String id);

    /**
     * @param id
     * @return com.changgou.goods.pojo.Spu
     * @description: 根据spuid 查询spu数据
     * @author 大佬味的小男孩
     * @date 2020/07/27 21:48
    */
    Spu findById(String id);
}
